package com.charlotte.cliente;

import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
/**
 *
 * @author law
 */
public class CtrDatos
{
    
    private final UiDatos ui;
    
    public CtrDatos(UiDatos ui)
    {
        this.ui = ui;
    }

    public void invocar(final SubPath subPath)
    {
        RequestBuilder b = new RequestBuilder(RequestBuilder.GET,"/ws/"+subPath.getDire());
        b.setTimeoutMillis(20000);
        b.setHeader("accept","text/plain");
        try 
        {
            b.sendRequest(null,new RequestCallback()
            {
                @Override
                public void onResponseReceived(Request request, Response response) 
                {
                    ui.mostrarResultado(subPath,response.getText());
                }
                @Override
                public void onError(Request request, Throwable exception) 
                {
                    if(!request.isPending())
                        ui.mostrarError("Error = Tiempo de conección expirado.");
                    else
                        ui.mostrarError("Error en el servidor.");
                }
            });
        } 
        catch (RequestException ex) 
        {
            ui.mostrarError("Error al hacer la peticion al servicio.");
        }
    }
    
}
